﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Ultilities
{
    public interface IBaseForm 
    {

        /// <summary>
        /// Use to begin add new item
        /// </summary>
        void fncInsert();

        /// <summary>
        /// Use to save new item or update existing item
        /// </summary>
        void fncSave();

        /// <summary>
        /// Use to begin edit item
        /// </summary>
        void fncEdit();

        /// <summary>
        /// Use to delete item
        /// </summary>
        void fncDelete();

        /// <summary>
        /// Use to reload form
        /// </summary>
        void fncRefresh();

        /// <summary>
        /// Use to print 
        /// </summary>
        void fncPrint();

        /// <summary>
        /// Hàm sử dụng để gọi hàm Load của childform
        /// </summary>
        void fncLoad();

        /// <summary>
        /// Hàm sử dụng để gọi hàm Find của childform
        /// </summary>
        void fncFind();

        /// <summary>
        /// Hàm sử dụng để gọi hàm Filter của childform
        /// </summary>
        /// <param name="bitEnable">trạng thái hiện tại của nút này</param>
        void fncFilter(bool bitEnable);

        /// <summary>
        /// Hàm sử dụng để gọi hàm Filter của childform
        /// </summary>
        /// <param name="bitEnable">trạng thái hiện tại của nút này</param>
        /// <param name="strGridName">tên của Grid cần hiện filter buttton</param>
        void fncFilter(bool bitEnable, string strGridName);

        /// <summary>
        /// Hàm sử dụng để gọi hàm Sumary của childform
        /// </summary>
        /// <param name="bitEnable">trạng thái hiện tại của nút này</param>
        void fncSumary(bool bitEnable);

        /// <summary>
        /// Hàm sử dụng để gọi hàm Sumary của childform
        /// </summary>
        /// <param name="bitEnable">trạng thái hiện tại của nút này</param>
        /// <param name="strGridName">tên của Grid cần hiện Sumary buttton</param>
        void fncSumary(bool bitEnable, string strGridName);

        /// <summary>
        /// Hàm xử lý Exception
        /// </summary>
        /// <param name="ex"></param>
        void Erp_ExceptionHandler(Exception ex);

        /// <summary>
        /// Hàm này trả về 1 đoạn text đa ngôn ngữ với ngôn ngữ hiện tại được sử dụng
        /// </summary>
        /// <param name="strKey"></param>
        /// <returns></returns>
        string Erp_GetText(string strKey);

        /// <summary>
        /// Hàm này trả về 1 đoạn text đa ngôn ngữ với ngôn ngữ được chỉ định ở strCulture
        /// </summary>
        /// <param name="strKey"></param>
        /// <param name="strCulture">vi-VN</param>
        /// <returns></returns>
        string Erp_GetText(string strKey, string strCulture);
    }
}
